static const q15_t in_com1[256] = {
    0x1577, 0xD312, 0x0DEC, 0xFDD4, 0x1DB9, 0xDD7C, 0xF64B, 0x04D2,
    0x2F93, 0xDD5A, 0xEDDD, 0xFA2C, 0x0D5F, 0x4208, 0xF97A, 0xFE2C,
    0x03E7, 0x2F3F, 0x18E1, 0x1EB5, 0xF7E3, 0xF3A9, 0x5002, 0x0358,
    0x0B8E, 0xDEDC, 0xCFC7, 0x01B0, 0x2B2D, 0x1FEA, 0x93BC, 0xBB3F,
    0xFF0F, 0xCA86, 0x2006, 0x73B8, 0xD902, 0x314C, 0xD6CF, 0x05BA,
    0x1949, 0xE6B6, 0x2F78, 0xEC79, 0xA80F, 0xDFA9, 0x477A, 0xD784,
    0x1130, 0xFCF6, 0x0B8D, 0xAD6B, 0xF02F, 0xF17D, 0x3925, 0xEC40,
    0x24D9, 0x60AB, 0xBFE4, 0xFC85, 0x365B, 0x3C38, 0xFFC8, 0x2A3C,
    0x1FD0, 0x0135, 0xEC59, 0x525C, 0xDBF4, 0x2831, 0xD420, 0x0E33,
    0xD0AC, 0x16CF, 0x4315, 0xEFE1, 0x17A1, 0x7C83, 0x13DF, 0x31B2,
    0xF54E, 0xE278, 0x187F, 0xCDE2, 0xBBDD, 0xF830, 0x599F, 0x46EC,
    0xF5C8, 0xDC90, 0x299F, 0xC8E2, 0x1166, 0x0990, 0x0431, 0x24E0,
    0xE165, 0x9B13, 0x9921, 0xDDED, 0x22BD, 0x136D, 0x4A2B, 0xD9E2,
    0x2AFA, 0x3917, 0xB989, 0xD490, 0x0F3E, 0xC884, 0x40B8, 0x1BAF,
    0xB490, 0x0046, 0xE5A3, 0x0DDC, 0x02A1, 0x0D6B, 0xF8CA, 0x0530,
    0x9F26, 0x12E1, 0xD4C7, 0x34D4, 0x3B51, 0xDC4A, 0xA2FE, 0x0746,
    0xB21E, 0xF3F6, 0x6134, 0x37E1, 0xF5F5, 0x1FB1, 0xBDED, 0x1E50,
    0x3FE4, 0xE27D, 0x744C, 0x10F4, 0x3809, 0x2998, 0xBBE3, 0xEB12,
    0xFD40, 0xABC5, 0x336B, 0x2327, 0xE6FA, 0x1DE4, 0x343D, 0xAE1B,
    0xC7CF, 0xF6E1, 0x3E32, 0x167E, 0x391A, 0x8D3D, 0xDA6C, 0x0B48,
    0xEB83, 0xD782, 0xC3F8, 0xEF96, 0x11DB, 0xEEE6, 0xE9EC, 0xF82C,
    0x35E3, 0xB844, 0xE9C2, 0x3CCF, 0x01D2, 0x224E, 0xD982, 0xCBA3,
    0xF554, 0xD2B0, 0x013D, 0x68A0, 0x2036, 0xBB5F, 0x1F2B, 0x8000,
    0xC8FD, 0x0B4F, 0x0007, 0x267F, 0xE09E, 0x151B, 0x1BD6, 0xEB44,
    0x0082, 0xCD6E, 0x0BCA, 0x47F4, 0xE0B5, 0x2457, 0xF8EA, 0xC086,
    0xAE06, 0x282B, 0x0FA5, 0xD9BB, 0xE484, 0x319D, 0x5677, 0x2B75,
    0xFD81, 0xD2B0, 0xD643, 0x031A, 0x9E6F, 0x0CF5, 0xDA55, 0x197B,
    0xEDAF, 0x0208, 0xE579, 0xE695, 0x3D2C, 0x4BDE, 0x1F82, 0x0C99,
    0x0AE6, 0x1E51, 0x00B6, 0xC284, 0x13D3, 0x30C9, 0xCC46, 0x06A9,
    0x7A33, 0xFA26, 0x4754, 0xAD17, 0x01E7, 0x1D4A, 0x43FA, 0x32EE,
    0xE719, 0x4282, 0xD850, 0xCC17, 0x5E80, 0xBDED, 0x11A6, 0x0DF1,
    0xDB5F, 0x2EB8, 0xCF94, 0x2337, 0x32FE, 0xD3BB, 0x0975, 0xF931
    };

static const q15_t in_com2[256] = {
    0x5BEF, 0xCD49, 0xD8CC, 0xBCD1, 0x124D, 0x28B3, 0xEB78, 0xF49C,
    0xA373, 0xC377, 0x3AA9, 0xE95C, 0xE7C2, 0x1609, 0x0701, 0x8EDC,
    0x4575, 0xF6FE, 0x2984, 0x251E, 0x0DCB, 0xDB0F, 0x2334, 0xD03C,
    0xC6C9, 0x07B7, 0x182D, 0xD4A4, 0x5C38, 0x247E, 0xE6B6, 0xD58B,
    0x325B, 0x12BF, 0x0C80, 0xFE05, 0xDC90, 0xFB0F, 0x1B69, 0x1DA4,
    0xCB87, 0x375F, 0x3E5F, 0xE3CB, 0x2385, 0xE1C9, 0x1AB3, 0xDD08,
    0xE452, 0x52FD, 0x2572, 0x191A, 0xFB72, 0x7941, 0x079D, 0xDEF2,
    0xFE12, 0xBF31, 0x3296, 0x4077, 0xF27F, 0xED4F, 0xC345, 0xCFE8,
    0xEF2D, 0x362D, 0x01F2, 0xE18B, 0x5BCC, 0xCD4F, 0x1DB8, 0xF67E,
    0x30C2, 0xDDA6, 0xD3A7, 0x0808, 0xFE0C, 0x2060, 0xFB8E, 0xC8A6,
    0x5CE7, 0x0CCF, 0xEF0C, 0xBDF0, 0xE9D4, 0xD0C4, 0x0C5F, 0x2A6E,
    0xD463, 0xE6A1, 0x012F, 0x2E73, 0x638B, 0x1A26, 0x2924, 0xA5FB,
    0x1635, 0x1B53, 0xF20D, 0xF1F0, 0x4925, 0x3455, 0xE755, 0x05B0,
    0x08EF, 0xA9AD, 0xB265, 0x2B29, 0xD498, 0x9FBD, 0xDD48, 0xE157,
    0x0F76, 0xD0C9, 0xDF15, 0xD4AE, 0xCA70, 0xC60A, 0xD7B2, 0xFAF8,
    0x05CD, 0xE2E8, 0xC5AD, 0x0C0D, 0x2788, 0x82BD, 0xB980, 0xB52A,
    0x42E7, 0xE7C5, 0x0D92, 0xDCBC, 0xDBB4, 0x1E56, 0xC294, 0xA978,
    0xEB0B, 0x8000, 0xA9F3, 0xFD66, 0xA7F6, 0x6C1E, 0x081F, 0xE43E,
    0xB17F, 0xBB34, 0x07A6, 0xC7DC, 0x10FF, 0xF30F, 0xD144, 0xDA95,
    0xBA0D, 0x29FB, 0xC632, 0xC62D, 0x1EF3, 0x1CBE, 0x05A0, 0x11E5,
    0x9BF1, 0xFE71, 0x210D, 0xDF0F, 0xEBDD, 0x1624, 0xDC7B, 0x0037,
    0x13C6, 0xD67D, 0xED4B, 0x4B30, 0xF83A, 0xC155, 0xFA35, 0xB7E9,
    0x2092, 0xEE3F, 0x2E0D, 0x2FBB, 0xE895, 0x3864, 0xDD37, 0x506D,
    0x2A4F, 0x1985, 0xC6C0, 0xFE51, 0xDD21, 0x3E4B, 0x0477, 0xA787,
    0x50B2, 0xD077, 0xEDC1, 0xEEC5, 0x2F11, 0xB66F, 0x2736, 0xE096,
    0xEF0B, 0xAA5A, 0xC5A1, 0x3F43, 0x4233, 0xFDC0, 0xEA68, 0xF1E6,
    0x0223, 0xFB8A, 0xEC14, 0xF4FB, 0x4CDA, 0x07DD, 0xC193, 0xE081,
    0x2568, 0xF69E, 0xDC8B, 0xC626, 0x07BE, 0xFCD6, 0x03F5, 0xB9DA,
    0xF5FC, 0xECB8, 0xFD33, 0x03C6, 0xEACC, 0x179A, 0xDFE6, 0x1AC1,
    0x15FF, 0xF360, 0x1F14, 0xFF6B, 0xA709, 0xC3C2, 0x0266, 0xEE87,
    0x17B0, 0xF837, 0xD7FE, 0x9FBE, 0x23E2, 0xEF5B, 0xD71F, 0xDD01,
    0x1DF9, 0xF2FC, 0xEDBC, 0x095E, 0xCC88, 0xD846, 0x799F, 0xD9D0
    };

static const q15_t in_bitwise1[23] = {
    0xE7BA, 0x983A, 0x5234, 0x5F81, 0x424D, 0xB38C, 0x2114, 0x2AE2,
    0x0568, 0xD577, 0x2578, 0x8DA7, 0x7A7A, 0x0713, 0x6772, 0xCAD1,
    0x3F0D, 0xECF0, 0xAB31, 0x84E1, 0xC8F6, 0x7454, 0x6579
    };

static const q15_t in_bitwise2[23] = {
    0x7A8F, 0xD47F, 0xC328, 0xDA37, 0xDC12, 0x0328, 0x0AFA, 0xEAB3,
    0x494B, 0x3518, 0x538E, 0x51DA, 0x2BB3, 0xD2BF, 0xBFB6, 0x9A7E,
    0x34EA, 0xADDF, 0x191C, 0x67F2, 0x52D9, 0xA314, 0x3C94
    };

static const q15_t in_rand[17] = {
    0xF522, 0xF5AF, 0x194D, 0x05FC, 0x0362, 0x18D5, 0x05CD, 0x08FE,
    0xE270, 0x0684, 0xFB50, 0xFB51, 0xD555, 0xFC55, 0xF4AF, 0x2203,
    0x21AE
    };

static const q15_t in_maxpos[17] = {
    0x7FFE, 0x0001, 0x7FFE, 0x0001, 0x7FFE, 0x0001, 0x7FFE, 0x0001,
    0x7FFE, 0x0001, 0x7FFE, 0x0001, 0x7FFE, 0x0001, 0x7FFE, 0x0001,
    0x7FFE
    };

static const q15_t in_maxneg[17] = {
    0x8001, 0xFFFF, 0x8001, 0xFFFF, 0x8001, 0xFFFF, 0x8001, 0xFFFF,
    0x8001, 0xFFFF, 0x8001, 0xFFFF, 0x8001, 0xFFFF, 0x8001, 0xFFFF,
    0x8001
    };

static const q15_t in_maxneg2[17] = {
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000
    };

static const q15_t ref_add[256] = {
    0x7166, 0xA05B, 0xE6B8, 0xBAA4, 0x3006, 0x062F, 0xE1C3, 0xF96F,
    0xD305, 0xA0D1, 0x2887, 0xE388, 0xF521, 0x5811, 0x007B, 0x8D08,
    0x495D, 0x263D, 0x4264, 0x43D2, 0x05AD, 0xCEB9, 0x7336, 0xD394,
    0xD257, 0xE693, 0xE7F5, 0xD654, 0x7FFF, 0x4468, 0x8000, 0x90CA,
    0x316B, 0xDD44, 0x2C86, 0x71BD, 0xB591, 0x2C5B, 0xF239, 0x235E,
    0xE4D0, 0x1E16, 0x6DD7, 0xD044, 0xCB94, 0xC172, 0x622D, 0xB48C,
    0xF582, 0x4FF4, 0x30FF, 0xC686, 0xEBA1, 0x6ABD, 0x40C2, 0xCB31,
    0x22EB, 0x1FDD, 0xF27A, 0x3CFD, 0x28DA, 0x2987, 0xC30D, 0xFA24,
    0x0EFD, 0x3763, 0xEE4B, 0x33E7, 0x37BF, 0xF581, 0xF1D8, 0x04B0,
    0x016D, 0xF475, 0x16BC, 0xF7E9, 0x15AD, 0x7FFF, 0x0F6D, 0xFA58,
    0x5235, 0xEF47, 0x078B, 0x8BD3, 0xA5B1, 0xC8F4, 0x65FE, 0x715A,
    0xCA2B, 0xC331, 0x2ACF, 0xF755, 0x74F1, 0x23B6, 0x2D55, 0xCADB,
    0xF79B, 0xB666, 0x8B2E, 0xCFDC, 0x6BE2, 0x47C2, 0x3180, 0xDF92,
    0x33E9, 0xE2C4, 0x8000, 0xFFB9, 0xE3D6, 0x8000, 0x1E01, 0xFD06,
    0xC406, 0xD10F, 0xC4B7, 0xE28A, 0xCD11, 0xD374, 0xD07C, 0x0028,
    0xA4F3, 0xF5C9, 0x9A74, 0x40E2, 0x62D9, 0x8000, 0x8000, 0xBC70,
    0xF505, 0xDBBB, 0x6EC7, 0x149C, 0xD1AA, 0x3E07, 0x8080, 0xC7C9,
    0x2AEF, 0x8000, 0x1E40, 0x0E5A, 0xDFFF, 0x7FFF, 0xC402, 0xCF50,
    0xAEBF, 0x8000, 0x3B12, 0xEB03, 0xF7F9, 0x10F3, 0x0581, 0x88B0,
    0x81DC, 0x20DC, 0x0464, 0xDCAB, 0x580C, 0xA9FB, 0xE00C, 0x1D2E,
    0x8774, 0xD5F4, 0xE504, 0xCEA5, 0xFDB9, 0x0509, 0xC667, 0xF863,
    0x49A9, 0x8EC1, 0xD70D, 0x7FFF, 0xFA0D, 0xE3A3, 0xD3B7, 0x838C,
    0x15E7, 0xC0F0, 0x2F4A, 0x7FFF, 0x08CB, 0xF3C3, 0xFC62, 0xD06D,
    0xF34C, 0x24D3, 0xC6C7, 0x24D0, 0xBDC0, 0x5366, 0x204D, 0x92CB,
    0x5133, 0x9DE6, 0xF98B, 0x36B9, 0x0FC6, 0xDAC6, 0x2020, 0xA11C,
    0x9D11, 0xD285, 0xD546, 0x18FD, 0x26B7, 0x2F5D, 0x40DF, 0x1D5B,
    0xFFA3, 0xCE3A, 0xC258, 0xF815, 0xEB48, 0x14D2, 0x9BE8, 0xF9FC,
    0x1317, 0xF8A6, 0xC204, 0xACBB, 0x44EA, 0x48B4, 0x2377, 0xC673,
    0x00E2, 0x0B09, 0xFDE9, 0xC64A, 0xFE9F, 0x4864, 0xAC2C, 0x216A,
    0x7FFF, 0xED85, 0x6668, 0xAC82, 0xA8EF, 0xE10C, 0x4660, 0x2176,
    0xFEC9, 0x3AB9, 0xB04E, 0x8000, 0x7FFF, 0xAD48, 0xE8C5, 0xEAF2,
    0xF958, 0x21B4, 0xBD50, 0x2C95, 0xFF86, 0xAC02, 0x7FFF, 0xD301
    };

static const q15_t ref_add_possat[17] = {
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF
    };

static const q15_t ref_add_negsat[17] = {
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000
    };

static const q15_t ref_sub[256] = {
    0xB987, 0x05C9, 0x3520, 0x4103, 0x0B6D, 0xB4C9, 0x0AD2, 0x1036,
    0x7FFF, 0x19E3, 0xB334, 0x10D0, 0x259E, 0x2BFE, 0xF279, 0x6F50,
    0xBE72, 0x3841, 0xEF5D, 0xF997, 0xEA18, 0x189A, 0x2CCE, 0x331B,
    0x44C5, 0xD725, 0xB79A, 0x2D0D, 0xCEF6, 0xFB6C, 0xAD07, 0xE5B4,
    0xCCB4, 0xB7C7, 0x1386, 0x75B3, 0xFC72, 0x363C, 0xBB66, 0xE816,
    0x4DC1, 0xAF57, 0xF119, 0x08AE, 0x848A, 0xFDE0, 0x2CC6, 0xFA7B,
    0x2CDE, 0xA9F9, 0xE61B, 0x9451, 0xF4BD, 0x8000, 0x3188, 0x0D4E,
    0x26C8, 0x7FFF, 0x8D4F, 0xBC0E, 0x43DD, 0x4EE9, 0x3C82, 0x5A54,
    0x30A4, 0xCB08, 0xEA67, 0x70D0, 0x8028, 0x5AE2, 0xB668, 0x17B5,
    0x9FEA, 0x3929, 0x6F6E, 0xE7D9, 0x1994, 0x5C23, 0x1851, 0x690C,
    0x9867, 0xD5AA, 0x2973, 0x0FF2, 0xD209, 0x276D, 0x4D3F, 0x1C7E,
    0x2165, 0xF5EF, 0x2870, 0x9A6F, 0xADDB, 0xEF6B, 0xDB0E, 0x7EE6,
    0xCB30, 0x8000, 0xA714, 0xEBFD, 0xD998, 0xDF18, 0x62D6, 0xD432,
    0x220B, 0x7FFF, 0x0724, 0xA966, 0x3AA6, 0x28C7, 0x6370, 0x3A58,
    0xA519, 0x2F7D, 0x068E, 0x392E, 0x3830, 0x4761, 0x2117, 0x0A38,
    0x9959, 0x2FF9, 0x0F1A, 0x28C7, 0x13C9, 0x598E, 0xE97E, 0x521C,
    0x8000, 0x0C32, 0x53A2, 0x5B25, 0x1A41, 0x015B, 0xFB59, 0x74D8,
    0x54D8, 0x627D, 0x7FFF, 0x138D, 0x7FFF, 0xBD7A, 0xB3C4, 0x06D4,
    0x4BC2, 0xF092, 0x2BC5, 0x5B4B, 0xD5FB, 0x2AD5, 0x62FA, 0xD386,
    0x0DC2, 0xCCE6, 0x7800, 0x5051, 0x1A27, 0x8000, 0xD4CC, 0xF963,
    0x4F93, 0xD911, 0xA2EB, 0x1087, 0x25FE, 0xD8C2, 0x0D71, 0xF7F4,
    0x221D, 0xE1C7, 0xFC76, 0xF19F, 0x0998, 0x60FA, 0xDF4D, 0x13BA,
    0xD4C2, 0xE471, 0xD330, 0x38E5, 0x37A0, 0x82FB, 0x41F4, 0x8000,
    0x9EAD, 0xF1CA, 0x3947, 0x282E, 0x037D, 0xD6D1, 0x1760, 0x43BD,
    0xAFD0, 0xFCF7, 0x1E09, 0x592F, 0xB1A4, 0x6DE8, 0xD1B4, 0xDFEF,
    0xBEFB, 0x7DD1, 0x4A04, 0x9A78, 0xA251, 0x33DD, 0x6C10, 0x398F,
    0xFB5E, 0xD726, 0xEA2F, 0x0E1F, 0x8000, 0x0517, 0x18C2, 0x38FA,
    0xC847, 0x0B6A, 0x08ED, 0x206F, 0x356E, 0x4F08, 0x1B8D, 0x52BE,
    0x14EA, 0x3199, 0x0383, 0xBEBE, 0x2907, 0x192F, 0xEC60, 0xEBE9,
    0x6434, 0x06C6, 0x283F, 0xADAC, 0x5ADE, 0x5988, 0x4194, 0x4467,
    0xCF69, 0x4A4B, 0x0053, 0x2C59, 0x3A9F, 0xCE91, 0x3A88, 0x30F0,
    0xBD66, 0x3BBD, 0xE1D9, 0x19D8, 0x6675, 0xFB75, 0x8FD6, 0x1F60
    };

static const q15_t ref_sub_possat[17] = {
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF
    };

static const q15_t ref_sub_negsat[17] = {
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000
    };

static const q15_t ref_mult[256] = {
    0x0F6B, 0x11CD, 0xFBBC, 0x0124, 0x0440, 0xF507, 0x018F, 0xFF92,
    0xDD9A, 0x1063, 0xF7B0, 0x0108, 0xFD78, 0x0B5E, 0xFFA5, 0x019E,
    0x021E, 0xFCAD, 0x0812, 0x08E7, 0xFF20, 0x0390, 0x1601, 0xFEC1,
    0xFAD6, 0xFE01, 0xF6E4, 0xFF6D, 0x1F1B, 0x0919, 0x1564, 0x16CE,
    0xFFA1, 0xF82B, 0x0321, 0xFE36, 0x0ACC, 0xFE19, 0xF72E, 0x0153,
    0xF5A3, 0xF510, 0x1721, 0x044E, 0xE799, 0x07A2, 0x0EE9, 0x0B0F,
    0xFC48, 0xFE08, 0x0361, 0xEFCE, 0x0090, 0xF241, 0x0366, 0x051A,
    0xFF72, 0xCF0E, 0xE6AA, 0xFE3F, 0xFA44, 0xF735, 0x001B, 0xF022,
    0xFBD1, 0x0083, 0xFFB4, 0xEC67, 0xE626, 0xF015, 0xF5D0, 0xFEF2,
    0xEDF9, 0xF9E1, 0xE8C2, 0xFEFD, 0xFFA4, 0x1F7E, 0xFF4F, 0xEA83,
    0xF83D, 0xFD0C, 0xFCC1, 0x19DE, 0x0BCD, 0x02E2, 0x08AA, 0x1782,
    0x037B, 0x0706, 0x0063, 0xEC00, 0x0D88, 0x01F4, 0x0159, 0xE611,
    0xFAB1, 0xEA74, 0x0B36, 0x03BE, 0x13DA, 0x07F1, 0xF1B5, 0xFE4E,
    0x0300, 0xD97F, 0x2AB9, 0xF15A, 0xFAD5, 0x29BA, 0xEE72, 0xF95E,
    0xF6E3, 0xFFE6, 0x06C8, 0xFB4F, 0xFEE7, 0xF9ED, 0x0245, 0xFFCC,
    0xFB9C, 0xFBB5, 0x13B2, 0x04F9, 0x1252, 0x22F2, 0x333A, 0xFBBF,
    0xD74B, 0x0247, 0x0A4E, 0xF09B, 0x02D9, 0x0783, 0x1FB5, 0xEB82,
    0xF58A, 0x1D83, 0xB1D2, 0xFFA8, 0xD976, 0x2322, 0xFBAE, 0x048A,
    0x01B0, 0x2D45, 0x0313, 0xF095, 0xFCAD, 0xFCFA, 0xECED, 0x17F1,
    0x1EB5, 0xFD02, 0xE3EA, 0xF5D7, 0x0DCE, 0xE63B, 0xFE59, 0x0194,
    0x1004, 0x007E, 0xF080, 0x0439, 0xFD31, 0xFD0B, 0x0620, 0xFFFD,
    0x0853, 0x1744, 0x0340, 0x23B8, 0xFFE4, 0xEF34, 0x01BE, 0x1D7E,
    0xFD49, 0x0649, 0x0072, 0x2704, 0xFA1C, 0xE1C4, 0xF788, 0xAF93,
    0xEDD1, 0x0241, 0xFFFD, 0xFF7E, 0x088C, 0x0A46, 0x00F9, 0x0E55,
    0x0052, 0x12C7, 0xFE52, 0xF650, 0xF47E, 0xEB1D, 0xFDD4, 0x0F94,
    0x0ADC, 0xE520, 0xF8DE, 0xED16, 0xF1C9, 0xFF21, 0xF169, 0xFB36,
    0xFFF5, 0x0194, 0x067F, 0xFFBC, 0xC56C, 0x00CC, 0x125F, 0xF9BB,
    0xFAA6, 0xFFDA, 0x0759, 0x0B7D, 0x03B3, 0xFE20, 0x00F9, 0xF919,
    0xFF26, 0xFB6F, 0xFFFC, 0xFE30, 0xFCB7, 0x08FF, 0x0CF9, 0x0164,
    0x1500, 0x0094, 0x1152, 0x0060, 0xFEAE, 0xF237, 0x0146, 0xF90C,
    0xFB64, 0xFBF4, 0x0C68, 0x270A, 0x1A7E, 0x0897, 0xFA5D, 0xFC30,
    0xF76C, 0xFB40, 0x06E9, 0x0294, 0xEB7F, 0x0DBD, 0x08FD, 0x0208
    };

static const q15_t ref_mult_possat[17] = {
    0x7FFF, 0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0000,
    0x7FFF, 0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0000, 0x7FFF, 0x0000,
    0x7FFF
    };

static const q15_t ref_negate[256] = {
    0xEA89, 0x2CEE, 0xF214, 0x022C, 0xE247, 0x2284, 0x09B5, 0xFB2E,
    0xD06D, 0x22A6, 0x1223, 0x05D4, 0xF2A1, 0xBDF8, 0x0686, 0x01D4,
    0xFC19, 0xD0C1, 0xE71F, 0xE14B, 0x081D, 0x0C57, 0xAFFE, 0xFCA8,
    0xF472, 0x2124, 0x3039, 0xFE50, 0xD4D3, 0xE016, 0x6C44, 0x44C1,
    0x00F1, 0x357A, 0xDFFA, 0x8C48, 0x26FE, 0xCEB4, 0x2931, 0xFA46,
    0xE6B7, 0x194A, 0xD088, 0x1387, 0x57F1, 0x2057, 0xB886, 0x287C,
    0xEED0, 0x030A, 0xF473, 0x5295, 0x0FD1, 0x0E83, 0xC6DB, 0x13C0,
    0xDB27, 0x9F55, 0x401C, 0x037B, 0xC9A5, 0xC3C8, 0x0038, 0xD5C4,
    0xE030, 0xFECB, 0x13A7, 0xADA4, 0x240C, 0xD7CF, 0x2BE0, 0xF1CD,
    0x2F54, 0xE931, 0xBCEB, 0x101F, 0xE85F, 0x837D, 0xEC21, 0xCE4E,
    0x0AB2, 0x1D88, 0xE781, 0x321E, 0x4423, 0x07D0, 0xA661, 0xB914,
    0x0A38, 0x2370, 0xD661, 0x371E, 0xEE9A, 0xF670, 0xFBCF, 0xDB20,
    0x1E9B, 0x64ED, 0x66DF, 0x2213, 0xDD43, 0xEC93, 0xB5D5, 0x261E,
    0xD506, 0xC6E9, 0x4677, 0x2B70, 0xF0C2, 0x377C, 0xBF48, 0xE451,
    0x4B70, 0xFFBA, 0x1A5D, 0xF224, 0xFD5F, 0xF295, 0x0736, 0xFAD0,
    0x60DA, 0xED1F, 0x2B39, 0xCB2C, 0xC4AF, 0x23B6, 0x5D02, 0xF8BA,
    0x4DE2, 0x0C0A, 0x9ECC, 0xC81F, 0x0A0B, 0xE04F, 0x4213, 0xE1B0,
    0xC01C, 0x1D83, 0x8BB4, 0xEF0C, 0xC7F7, 0xD668, 0x441D, 0x14EE,
    0x02C0, 0x543B, 0xCC95, 0xDCD9, 0x1906, 0xE21C, 0xCBC3, 0x51E5,
    0x3831, 0x091F, 0xC1CE, 0xE982, 0xC6E6, 0x72C3, 0x2594, 0xF4B8,
    0x147D, 0x287E, 0x3C08, 0x106A, 0xEE25, 0x111A, 0x1614, 0x07D4,
    0xCA1D, 0x47BC, 0x163E, 0xC331, 0xFE2E, 0xDDB2, 0x267E, 0x345D,
    0x0AAC, 0x2D50, 0xFEC3, 0x9760, 0xDFCA, 0x44A1, 0xE0D5, 0x7FFF,
    0x3703, 0xF4B1, 0xFFF9, 0xD981, 0x1F62, 0xEAE5, 0xE42A, 0x14BC,
    0xFF7E, 0x3292, 0xF436, 0xB80C, 0x1F4B, 0xDBA9, 0x0716, 0x3F7A,
    0x51FA, 0xD7D5, 0xF05B, 0x2645, 0x1B7C, 0xCE63, 0xA989, 0xD48B,
    0x027F, 0x2D50, 0x29BD, 0xFCE6, 0x6191, 0xF30B, 0x25AB, 0xE685,
    0x1251, 0xFDF8, 0x1A87, 0x196B, 0xC2D4, 0xB422, 0xE07E, 0xF367,
    0xF51A, 0xE1AF, 0xFF4A, 0x3D7C, 0xEC2D, 0xCF37, 0x33BA, 0xF957,
    0x85CD, 0x05DA, 0xB8AC, 0x52E9, 0xFE19, 0xE2B6, 0xBC06, 0xCD12,
    0x18E7, 0xBD7E, 0x27B0, 0x33E9, 0xA180, 0x4213, 0xEE5A, 0xF20F,
    0x24A1, 0xD148, 0x306C, 0xDCC9, 0xCD02, 0x2C45, 0xF68B, 0x06CF
    };

static const q15_t ref_negate_possat[17] = {
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF
    };

static const q15_t ref_offset[256] = {
    0x5577, 0x1312, 0x4DEC, 0x3DD4, 0x5DB9, 0x1D7C, 0x364B, 0x44D2,
    0x6F93, 0x1D5A, 0x2DDD, 0x3A2C, 0x4D5F, 0x7FFF, 0x397A, 0x3E2C,
    0x43E7, 0x6F3F, 0x58E1, 0x5EB5, 0x37E3, 0x33A9, 0x7FFF, 0x4358,
    0x4B8E, 0x1EDC, 0x0FC7, 0x41B0, 0x6B2D, 0x5FEA, 0xD3BC, 0xFB3F,
    0x3F0F, 0x0A86, 0x6006, 0x7FFF, 0x1902, 0x714C, 0x16CF, 0x45BA,
    0x5949, 0x26B6, 0x6F78, 0x2C79, 0xE80F, 0x1FA9, 0x7FFF, 0x1784,
    0x5130, 0x3CF6, 0x4B8D, 0xED6B, 0x302F, 0x317D, 0x7925, 0x2C40,
    0x64D9, 0x7FFF, 0xFFE4, 0x3C85, 0x765B, 0x7C38, 0x3FC8, 0x6A3C,
    0x5FD0, 0x4135, 0x2C59, 0x7FFF, 0x1BF4, 0x6831, 0x1420, 0x4E33,
    0x10AC, 0x56CF, 0x7FFF, 0x2FE1, 0x57A1, 0x7FFF, 0x53DF, 0x71B2,
    0x354E, 0x2278, 0x587F, 0x0DE2, 0xFBDD, 0x3830, 0x7FFF, 0x7FFF,
    0x35C8, 0x1C90, 0x699F, 0x08E2, 0x5166, 0x4990, 0x4431, 0x64E0,
    0x2165, 0xDB13, 0xD921, 0x1DED, 0x62BD, 0x536D, 0x7FFF, 0x19E2,
    0x6AFA, 0x7917, 0xF989, 0x1490, 0x4F3E, 0x0884, 0x7FFF, 0x5BAF,
    0xF490, 0x4046, 0x25A3, 0x4DDC, 0x42A1, 0x4D6B, 0x38CA, 0x4530,
    0xDF26, 0x52E1, 0x14C7, 0x74D4, 0x7B51, 0x1C4A, 0xE2FE, 0x4746,
    0xF21E, 0x33F6, 0x7FFF, 0x77E1, 0x35F5, 0x5FB1, 0xFDED, 0x5E50,
    0x7FE4, 0x227D, 0x7FFF, 0x50F4, 0x7809, 0x6998, 0xFBE3, 0x2B12,
    0x3D40, 0xEBC5, 0x736B, 0x6327, 0x26FA, 0x5DE4, 0x743D, 0xEE1B,
    0x07CF, 0x36E1, 0x7E32, 0x567E, 0x791A, 0xCD3D, 0x1A6C, 0x4B48,
    0x2B83, 0x1782, 0x03F8, 0x2F96, 0x51DB, 0x2EE6, 0x29EC, 0x382C,
    0x75E3, 0xF844, 0x29C2, 0x7CCF, 0x41D2, 0x624E, 0x1982, 0x0BA3,
    0x3554, 0x12B0, 0x413D, 0x7FFF, 0x6036, 0xFB5F, 0x5F2B, 0xC000,
    0x08FD, 0x4B4F, 0x4007, 0x667F, 0x209E, 0x551B, 0x5BD6, 0x2B44,
    0x4082, 0x0D6E, 0x4BCA, 0x7FFF, 0x20B5, 0x6457, 0x38EA, 0x0086,
    0xEE06, 0x682B, 0x4FA5, 0x19BB, 0x2484, 0x719D, 0x7FFF, 0x6B75,
    0x3D81, 0x12B0, 0x1643, 0x431A, 0xDE6F, 0x4CF5, 0x1A55, 0x597B,
    0x2DAF, 0x4208, 0x2579, 0x2695, 0x7D2C, 0x7FFF, 0x5F82, 0x4C99,
    0x4AE6, 0x5E51, 0x40B6, 0x0284, 0x53D3, 0x70C9, 0x0C46, 0x46A9,
    0x7FFF, 0x3A26, 0x7FFF, 0xED17, 0x41E7, 0x5D4A, 0x7FFF, 0x72EE,
    0x2719, 0x7FFF, 0x1850, 0x0C17, 0x7FFF, 0xFDED, 0x51A6, 0x4DF1,
    0x1B5F, 0x6EB8, 0x0F94, 0x6337, 0x72FE, 0x13BB, 0x4975, 0x3931
    };

static const q15_t ref_offset_possat[17] = {
    0x7FFF, 0x7334, 0x7FFF, 0x7334, 0x7FFF, 0x7334, 0x7FFF, 0x7334,
    0x7FFF, 0x7334, 0x7FFF, 0x7334, 0x7FFF, 0x7334, 0x7FFF, 0x7334,
    0x7FFF
    };

static const q15_t ref_offset_negsat[17] = {
    0x8000, 0x8CCC, 0x8000, 0x8CCC, 0x8000, 0x8CCC, 0x8000, 0x8CCC,
    0x8000, 0x8CCC, 0x8000, 0x8CCC, 0x8000, 0x8CCC, 0x8000, 0x8CCC,
    0x8000
    };

static const q15_t ref_scale[256] = {
    0x0ABB, 0xE989, 0x06F6, 0xFEEA, 0x0EDD, 0xEEBE, 0xFB25, 0x0269,
    0x17C9, 0xEEAD, 0xF6EF, 0xFD16, 0x06B0, 0x2104, 0xFCBD, 0xFF16,
    0x01F4, 0x17A0, 0x0C70, 0x0F5A, 0xFBF1, 0xF9D5, 0x2801, 0x01AC,
    0x05C7, 0xEF6E, 0xE7E4, 0x00D8, 0x1597, 0x0FF5, 0xC9DE, 0xDDA0,
    0xFF88, 0xE543, 0x1003, 0x39DC, 0xEC81, 0x18A6, 0xEB68, 0x02DD,
    0x0CA4, 0xF35B, 0x17BC, 0xF63C, 0xD408, 0xEFD4, 0x23BD, 0xEBC2,
    0x0898, 0xFE7B, 0x05C6, 0xD6B6, 0xF817, 0xF8BE, 0x1C92, 0xF620,
    0x126D, 0x3056, 0xDFF2, 0xFE43, 0x1B2E, 0x1E1C, 0xFFE4, 0x151E,
    0x0FE8, 0x009B, 0xF62C, 0x292E, 0xEDFA, 0x1419, 0xEA10, 0x0719,
    0xE856, 0x0B68, 0x218A, 0xF7F1, 0x0BD0, 0x3E41, 0x09F0, 0x18D9,
    0xFAA7, 0xF13C, 0x0C40, 0xE6F1, 0xDDEE, 0xFC18, 0x2CCF, 0x2376,
    0xFAE4, 0xEE48, 0x14D0, 0xE471, 0x08B3, 0x04C8, 0x0219, 0x1270,
    0xF0B3, 0xCD8A, 0xCC91, 0xEEF6, 0x115F, 0x09B6, 0x2515, 0xECF1,
    0x157D, 0x1C8C, 0xDCC4, 0xEA48, 0x079F, 0xE442, 0x205C, 0x0DD8,
    0xDA48, 0x0023, 0xF2D1, 0x06EE, 0x0150, 0x06B5, 0xFC65, 0x0298,
    0xCF93, 0x0970, 0xEA64, 0x1A6A, 0x1DA9, 0xEE25, 0xD17F, 0x03A3,
    0xD90F, 0xF9FB, 0x309A, 0x1BF0, 0xFAFB, 0x0FD8, 0xDEF6, 0x0F28,
    0x1FF2, 0xF13E, 0x3A26, 0x087A, 0x1C05, 0x14CC, 0xDDF1, 0xF589,
    0xFEA0, 0xD5E3, 0x19B6, 0x1193, 0xF37D, 0x0EF2, 0x1A1F, 0xD70D,
    0xE3E7, 0xFB71, 0x1F19, 0x0B3F, 0x1C8D, 0xC69F, 0xED36, 0x05A4,
    0xF5C2, 0xEBC1, 0xE1FC, 0xF7CB, 0x08EE, 0xF773, 0xF4F6, 0xFC16,
    0x1AF2, 0xDC22, 0xF4E1, 0x1E67, 0x00E9, 0x1127, 0xECC1, 0xE5D2,
    0xFAAA, 0xE958, 0x009E, 0x3450, 0x101B, 0xDDAF, 0x0F96, 0xC000,
    0xE47E, 0x05A7, 0x0004, 0x133F, 0xF04F, 0x0A8E, 0x0DEB, 0xF5A2,
    0x0041, 0xE6B7, 0x05E5, 0x23FA, 0xF05A, 0x122B, 0xFC75, 0xE043,
    0xD703, 0x1415, 0x07D3, 0xECDD, 0xF242, 0x18CE, 0x2B3C, 0x15BA,
    0xFEC0, 0xE958, 0xEB22, 0x018D, 0xCF37, 0x067A, 0xED2A, 0x0CBE,
    0xF6D7, 0x0104, 0xF2BC, 0xF34A, 0x1E96, 0x25EF, 0x0FC1, 0x064C,
    0x0573, 0x0F28, 0x005B, 0xE142, 0x09EA, 0x1865, 0xE623, 0x0355,
    0x3D19, 0xFD13, 0x23AA, 0xD68B, 0x00F3, 0x0EA5, 0x21FD, 0x1977,
    0xF38C, 0x2141, 0xEC28, 0xE60B, 0x2F40, 0xDEF6, 0x08D3, 0x06F9,
    0xEDAF, 0x175C, 0xE7CA, 0x119B, 0x197F, 0xE9DE, 0x04BB, 0xFC98
    };

static const q15_t ref_scale_possat[17] = {
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF
    };

static const q63_t ref_dot_prod_3[1] = {
    0x000000000C767AAE
    };

static const q63_t ref_dot_prod_4[1] = {
    0x0000000004A622F0
    };

static const q63_t ref_dot_prod_4n1[1] = {
    0x0000000018E0A5E8
    };

static const q15_t ref_abs[256] = {
    0x1577, 0x2CEE, 0x0DEC, 0x022C, 0x1DB9, 0x2284, 0x09B5, 0x04D2,
    0x2F93, 0x22A6, 0x1223, 0x05D4, 0x0D5F, 0x4208, 0x0686, 0x01D4,
    0x03E7, 0x2F3F, 0x18E1, 0x1EB5, 0x081D, 0x0C57, 0x5002, 0x0358,
    0x0B8E, 0x2124, 0x3039, 0x01B0, 0x2B2D, 0x1FEA, 0x6C44, 0x44C1,
    0x00F1, 0x357A, 0x2006, 0x73B8, 0x26FE, 0x314C, 0x2931, 0x05BA,
    0x1949, 0x194A, 0x2F78, 0x1387, 0x57F1, 0x2057, 0x477A, 0x287C,
    0x1130, 0x030A, 0x0B8D, 0x5295, 0x0FD1, 0x0E83, 0x3925, 0x13C0,
    0x24D9, 0x60AB, 0x401C, 0x037B, 0x365B, 0x3C38, 0x0038, 0x2A3C,
    0x1FD0, 0x0135, 0x13A7, 0x525C, 0x240C, 0x2831, 0x2BE0, 0x0E33,
    0x2F54, 0x16CF, 0x4315, 0x101F, 0x17A1, 0x7C83, 0x13DF, 0x31B2,
    0x0AB2, 0x1D88, 0x187F, 0x321E, 0x4423, 0x07D0, 0x599F, 0x46EC,
    0x0A38, 0x2370, 0x299F, 0x371E, 0x1166, 0x0990, 0x0431, 0x24E0,
    0x1E9B, 0x64ED, 0x66DF, 0x2213, 0x22BD, 0x136D, 0x4A2B, 0x261E,
    0x2AFA, 0x3917, 0x4677, 0x2B70, 0x0F3E, 0x377C, 0x40B8, 0x1BAF,
    0x4B70, 0x0046, 0x1A5D, 0x0DDC, 0x02A1, 0x0D6B, 0x0736, 0x0530,
    0x60DA, 0x12E1, 0x2B39, 0x34D4, 0x3B51, 0x23B6, 0x5D02, 0x0746,
    0x4DE2, 0x0C0A, 0x6134, 0x37E1, 0x0A0B, 0x1FB1, 0x4213, 0x1E50,
    0x3FE4, 0x1D83, 0x744C, 0x10F4, 0x3809, 0x2998, 0x441D, 0x14EE,
    0x02C0, 0x543B, 0x336B, 0x2327, 0x1906, 0x1DE4, 0x343D, 0x51E5,
    0x3831, 0x091F, 0x3E32, 0x167E, 0x391A, 0x72C3, 0x2594, 0x0B48,
    0x147D, 0x287E, 0x3C08, 0x106A, 0x11DB, 0x111A, 0x1614, 0x07D4,
    0x35E3, 0x47BC, 0x163E, 0x3CCF, 0x01D2, 0x224E, 0x267E, 0x345D,
    0x0AAC, 0x2D50, 0x013D, 0x68A0, 0x2036, 0x44A1, 0x1F2B, 0x7FFF,
    0x3703, 0x0B4F, 0x0007, 0x267F, 0x1F62, 0x151B, 0x1BD6, 0x14BC,
    0x0082, 0x3292, 0x0BCA, 0x47F4, 0x1F4B, 0x2457, 0x0716, 0x3F7A,
    0x51FA, 0x282B, 0x0FA5, 0x2645, 0x1B7C, 0x319D, 0x5677, 0x2B75,
    0x027F, 0x2D50, 0x29BD, 0x031A, 0x6191, 0x0CF5, 0x25AB, 0x197B,
    0x1251, 0x0208, 0x1A87, 0x196B, 0x3D2C, 0x4BDE, 0x1F82, 0x0C99,
    0x0AE6, 0x1E51, 0x00B6, 0x3D7C, 0x13D3, 0x30C9, 0x33BA, 0x06A9,
    0x7A33, 0x05DA, 0x4754, 0x52E9, 0x01E7, 0x1D4A, 0x43FA, 0x32EE,
    0x18E7, 0x4282, 0x27B0, 0x33E9, 0x5E80, 0x4213, 0x11A6, 0x0DF1,
    0x24A1, 0x2EB8, 0x306C, 0x2337, 0x32FE, 0x2C45, 0x0975, 0x06CF
    };

static const q15_t ref_shift[17] = {
    0xEA43, 0xEB5F, 0x329A, 0x0BF8, 0x06C5, 0x31A9, 0x0B9A, 0x11FB,
    0xC4E0, 0x0D07, 0xF6A1, 0xF6A1, 0xAAAB, 0xF8AB, 0xE95E, 0x4406,
    0x435B
    };

static const q15_t ref_shift_possat[17] = {
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002, 0x7FFF, 0x0002,
    0x7FFF
    };

static const q15_t ref_shift_negsat[17] = {
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE, 0x8000, 0xFFFE,
    0x8000
    };

static const u16_t ref_and[23] = {
    0x628A, 0x903A, 0x4220, 0x5A01, 0x4000, 0x0308, 0x0010, 0x2AA2,
    0x0148, 0x1510, 0x0108, 0x0182, 0x2A32, 0x0213, 0x2732, 0x8A50,
    0x3408, 0xACD0, 0x0910, 0x04E0, 0x40D0, 0x2014, 0x2410
    };

static const u16_t ref_or[23] = {
    0xFFBF, 0xDC7F, 0xD33C, 0xDFB7, 0xDE5F, 0xB3AC, 0x2BFE, 0xEAF3,
    0x4D6B, 0xF57F, 0x77FE, 0xDDFF, 0x7BFB, 0xD7BF, 0xFFF6, 0xDAFF,
    0x3FEF, 0xEDFF, 0xBB3D, 0xE7F3, 0xDAFF, 0xF754, 0x7DFD
    };

static const u16_t ref_not[23] = {
    0x1845, 0x67C5, 0xADCB, 0xA07E, 0xBDB2, 0x4C73, 0xDEEB, 0xD51D,
    0xFA97, 0x2A88, 0xDA87, 0x7258, 0x8585, 0xF8EC, 0x988D, 0x352E,
    0xC0F2, 0x130F, 0x54CE, 0x7B1E, 0x3709, 0x8BAB, 0x9A86
    };

static const u16_t ref_xor[23] = {
    0x9D35, 0x4C45, 0x911C, 0x85B6, 0x9E5F, 0xB0A4, 0x2BEE, 0xC051,
    0x4C23, 0xE06F, 0x76F6, 0xDC7D, 0x51C9, 0xD5AC, 0xD8C4, 0x50AF,
    0x0BE7, 0x412F, 0xB22D, 0xE313, 0x9A2F, 0xD740, 0x59ED
    };

